<?php
/**
 * 作者:晨光
 * EMAIL:461718846@qq.com
 * DATE:2020/4/18
 */

namespace app\common\controller;


use think\Db;

class Plugin extends Base
{
//    单文件上传页面，
    public function upload_file()
    {
//        上传表单元素的id
        $id = input('id');
        $this->assign('id', $id);
//        选择数量限制
        $num = input('num');
        $this->assign('num',empty($num)?0:$num);

        return view();
    }

//    文件查看接口
    public function getFileDirList()
    {
        $param = input();

        if (empty($param['dir'])) {
//            读取文件夹列表
            $list = Db::name('file')->group('day(upload_time)')->order('upload_time desc')->select();
            foreach ($list as $k => $v) {
                $list[$k]['isDir'] = true;
                $list[$k]['name'] = $list[$k]['dir'] = date('Y-m-d', strtotime($v['upload_time']));
            }
        } else {
//            读取文件列表
            $list = Db::name('file')->whereBetweenTime('upload_time', $param['dir'])->field('path as url,name,id,type')->select();
            foreach ($list as $k => $v) {
//                如果是图片，缩略图就用自己的。如果不是图片就用默认的
                if (in_array($v['type'],["gif", "png", "jpeg", "jpg", "bmp"])){
                    $list[$k]['smUrl'] = $v['url'];
                }
                $list[$k]['isDir'] = false;
            }
        }

        return $this->result($list);
    }

//    删除文件
    public function delFile()
    {
        $id = input('id');
        $info = Db::name('file')->where('id', '=', $id)->find();
        if (!empty($info)) {
//            先检查文件，删除
            $path = env('root_path') . '/public/' . $info['path'];
            if (is_file($path)) {
                @unlink($path);
                if (is_file($path)) {
                    $this->error('文件删除失败');
                } else {
//                    删除记录
                    $res = Db::name('file')->where('id', $id)->delete();
                    if ($res !== false) {
                        $this->success('文件删除成功');
                    } else {
                        $this->error('文件记录删除失败');
                    }
                }
            } else {
//                如果文件不存在，记录存在，直接删除记录
                //                    删除记录
                $res = Db::name('file')->where('id', $id)->delete();
                if ($res !== false) {
                    $this->success('文件删除成功');
                } else {
                    $this->error('文件不存在或已删除');
                }
            }
        } else {
            $this->error('当前文件记录不存在');
        }
    }
}
